/**
 * WindowBox is a based class.
 * Every WindowBox provides a titlebar and selector icons. Right now, there
 * is only one icon for changing the look of the GUI.
 */

#ifndef WINDOWBOX_HPP
#define WINDOWBOX_HPP

#include <Wt/WContainerWidget>
#include <Wt/WText>


// #include <string>
namespace webpages
{   
    namespace windowboxes
    {
        class WindowBox : public Wt::WContainerWidget
        {
        protected:            
            Wt::WText m_title;
            
            /**
             * When we write to the WindowBox, the data goes to m_display_area.
             */
            //             Wt::WContainerWidget* m_display_area;
            Wt::WContainerWidget m_display_area;
            
            /**
             * Theme selector is a placeholder for something possibly more important.
             * There could be more buttons here but this provides a foundation for 
             * adding more functionality.
             */
            Wt::WContainerWidget* m_theme_selector;
            
            /**
             * Set styles that are common to all WindowBoxes (such as border).
             */
            void setCSS3Styling();
            
            WindowBox(Wt::WContainerWidget* parent);
        public:
            // No public access. Subclass WindowBox to use it. 
        };
    } // namespace window_boxes
} // namespace webpages


#endif // #ifndef WINDOWBOX_HPP